// webpack 的核心是 commonjs 模块化规范
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    // 模式 development production
    mode: 'development',
    // 入口
    entry: './src/index.ts',
    // 出口
    output: {
        path: path.resolve(__dirname, './build'),
        filename: 'js/bundle.js'
    },
    // loaders
    module: {
        rules: [
            {
                // 应该是一个正则表达式的内容  ts tsx 都会解析
                test: /\.tsx?$/,
                use: 'ts-loader'
            }
        ]
    },
    // 处理的是，如果在引入模块的时候，如果是ts等相关文件则省略后缀名
    resolve: {
        extensions: ['.ts', '.tsx', '.js']
    },
    // 插件
    plugins: [
        new HTMLWebpackPlugin({
            template: './public/index.html'
        })
    ],

    devServer: {
        port: 9527,
        open: true
    }
}